package acciones;

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Vector;

import persistencia.ArticuloDAO;
import persistencia.AutorDAO;
import persistencia.EstadoDAO;
import persistencia.InvitacionDAO;
import persistencia.RevisionDAO;
import persistencia.RevisorDAO;

import com.opensymphony.xwork2.ActionSupport;

import dominio.Autor;
import dominio.Estado;
import dominio.Invitacion;
import dominio.Persona;
import dominio.Revision;


public class GestionarInvitacion extends ComprobarSesion {
	private static final long serialVersionUID = 1L;
	private Persona persona;
	private String opcion;
	private int idInvitacion;

	public String execute() {
		try {
			persona =  checkSesion("persona");
			if (persona != null) {
				if(opcion.equalsIgnoreCase("aceptar")){
					InvitacionDAO.updateEstado("ACEPTADA", getIdInvitacion());
					int idArticulo=InvitacionDAO.newInvitacion(getIdInvitacion()).getArticulo().getIdArticulo();
					//EstadoDAO.insertEstadoArticulo(new Estado(idArticulo,"INICIADA",getDateTime()));
					if(ArticuloDAO.newArticulo(idArticulo).getEstado().equals("NUEVO"))
						ArticuloDAO.updateEstado("REVISION", idArticulo);
					RevisionDAO.insert(new Revision("INICIADA",RevisorDAO.newRevisor(persona.getDni()),ArticuloDAO.newArticulo(idArticulo),getDateTime(),"","",""));
				}else if(opcion.equalsIgnoreCase("rechazar")){
					InvitacionDAO.updateEstado("RECHAZADA", getIdInvitacion());
				}else{
					return ERROR;
				}					
				return SUCCESS;
			} else {
				return ERROR;
			}
		}catch (Exception e) {
			return ERROR;
		}
	}
		
	public Persona getPersona() {
		return persona;
	}

	public void setPersona(Persona persona) {
		this.persona = persona;
	}

	public String getOpcion() {
		return opcion;
	}

	public void setOpcion(String opcion) {
		this.opcion = opcion;
	}

	public int getIdInvitacion() {
		return idInvitacion;
	}

	public void setIdInvitacion(int idInvitacion) {
		this.idInvitacion = idInvitacion;
	}
	
	private String getDateTime() {
        DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
        Date date = new Date();
        return dateFormat.format(date);
    }
}
